/**
 * Copyright (c) 2011 eelpo.com
 * All rights reserved.
 */
package com.eelpo.common.query;

import com.eelpo.common.query.expression.JoinExpression;

/**
 * <pre>
 * 
 * Join表达式工厂代理类
 * 
 * </pre>
 * 
 * @author <a href="mailto:Brian@eelpo.com">汪洪州</a>
 * @since 1.0
 */
public class Join {

	/**
	 * inner join 表达式
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression join(String join) {
		return JoinExpression.getJoinExpression(join);
	}

	/**
	 * inner join fetch 表达式
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression joinFetch(String join) {
		return JoinExpression.getJoinFetchExpression(join);
	}

	/**
	 * left out join 表达式
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression leftJoin(String join) {
		return JoinExpression.getLeftJoinExpression(join);
	}

	/**
	 * left out join fetch 表达式
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression leftJoinFetch(String join) {
		return JoinExpression.getLeftJoinFetchExpression(join);
	}

	/**
	 * inner join 表达式,不会自动追加别名
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression joinInornate(String join) {
		return JoinExpression.getJoinInornateExpression(join);
	}

	/**
	 * inner join fetch 表达式,不会自动追加别名
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression joinFetchInornate(String join) {
		return JoinExpression.getJoinFetchInornateExpression(join);
	}

	/**
	 * left out join 表达式,不会自动追加别名
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression leftJoinInornate(String join) {
		return JoinExpression.getLeftJoinInornateExpression(join);
	}

	/**
	 * left out join fetch 表达式,不会自动追加别名
	 * 
	 * @param join
	 *            join属性
	 * @return 返回join表达式
	 */
	public static JoinExpression leftJoinFetchInornate(String join) {
		return JoinExpression.getLeftJoinFetchInornateExpression(join);
	}
}
